package com.itbaizhan.fastdfsdemo.controller;

import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@RestController

public class UploadController {
    //fastdfs存储节点的客户端对象
    @Autowired
    private FastFileStorageClient fastFileStorageClient;

    //图片上传  MultipartFile接口
    @PostMapping("/upload")
    public void upload(MultipartFile file) throws IOException {
        //1,判断文件是否为空
        if(file != null){
            //2,获取上传图片的名字
            String filename = file.getOriginalFilename();
            //3,获取后缀名   //获取最后一个“.”的下标，并获取从这个下标的下一个下标开始后的字符作为文件后缀
            /*因为这个方法是获取最后一个“.”的下标的，我们要的是 . 后面的后缀，所以需要+1来获取后面的符号作为文件后缀*/
            String fileSuffix = filename.substring(filename.lastIndexOf(".")+1);
            //4，上传图片
            StorePath storePath = fastFileStorageClient.uploadFile(file.getInputStream(), file.getSize(),fileSuffix, null);
            //创建成功会返回路径
            System.out.println("路径: "+storePath.getFullPath());
            //TODO 保存到数据库 jdbc mybatisplus   获取用户的sessionid再关联保存

        }
    }

}
